The present invention relates to the transmission of data in networks. In particular, the present invention relates to the transmission of notifications for acknowledging receipt of data at nodes of a network.
Networks comprising a plurality of stations or nodes between which data is communicated have become widespread. In such networks, data is typically transmitted across a connection between a source node and a destination node. In many cases, the transmission of data takes place over multiple steps via one or more intermediate nodes, particularly where the nodes are individually not capable of transmitting data over large distances (because, for example, of limited radio transmitting power). The data may be sent in discrete packets, ordered into a sequence. The data may comprise, for example, application data or control data.
The data may be transmitted according to a protocol stack, comprising at least a physical layer (hereinafter L1), which comprises the physical combination of modems, wires, relays etc. over which the signal is sent; a data link protocol layer (hereinafter L2) which handles transmission of data between adjacent nodes in a connection; and a network protocol layer (hereinafter L3) which handles, inter alia, establishing data connections, setting routes for data transmission and data flow within a connection.
In some cases, “unacknowledged” transmission protocols in which the sending node is not informed as to whether data sent has been correctly received at the receiving station are used; however, unacknowledged transmission protocols are problematic where a significant proportion of data is lost or corrupted in transmission, since it becomes difficult to arrange for the lost data to be retransmitted. It is therefore common for notifications of receipt of data to be sent between nodes, and for data to be retransmitted in the event that no corresponding notification is received. Hereinafter, notifications will be referred to as “acks” (an abbreviation of acknowledgement). In the following discussion, data which is acknowledged, but is not itself an ack will be referred to as “primary data”; similarly, data packets comprising such data will be referred to as “primary data packets”.
One notification method that such arrangements conventionally use, often referred to as a “point to point” method, is now described with reference to FIG. 1a and FIG. 1b. FIG. 1a shows primary data being transmitted and acknowledged between a source node, an intermediate node and a destination node. At step S300, a primary data packet is transmitted from the source node to the intermediate node. The intermediate node sends an ack at step S302 to notify the source node of receipt of the primary data packet. The primary data packet typically comprises information identifying the destination node as its destination; the destination node analyses the primary data packet to ascertain its destination, and having done so, sends the primary data packet to the destination node at step S304. The primary data packet also typically comprises information identifying the source node as its source; the destination node extracts this information and sends an ack to notify the intermediate node of receipt of the primary data packet at step S306. In this way, primary data packet transmission is acknowledged at each stage of transmission. Acks transmitted according to a point to point acknowledgement method are typically processed by L2; hereinafter they will be referred to as “L2 acks”.
If a primary data packet is lost or corrupted during transmission, no corresponding ack is received, which triggers the primary data packet to be resent. FIG. 1b shows an example in which a primary data packet is lost between the intermediate node and the destination node. At step S310, the primary data packet is sent from the source node to the intermediate node; an L2 ack is sent from the intermediate node to the source node at step S312. At step S314, the intermediate node sends the primary data packet to the destination node; however, the primary data packet is not received, perhaps due to interference or environmental conditions that affect transmission of signals between nodes, such as interference from transmission from another radio system, lightening, or “radio fading” in which the signal is cancelled by destructive interference of multiple paths from source node to destination node. The intermediate node monitors for an L2 ack for the primary data packet it has sent for a predetermined time T before resending the primary data packet at step S316. This time the primary data packet is successfully received by the destination node and an L2 ack sent from the destination node to the intermediate node at step S318. As before, non-receipt of an ack would cause the corresponding primary data packet to be resent.
A problem with this method is that, since the source node is not informed of the loss of the primary data packet sent at step S314, it continues to send further primary data packets 320 to the intermediate node; particularly in arrangements where the connection between the intermediate node and the destination node is much less efficient than the connection between the source node and the destination node, this can lead to a large build up of primary data packets at the intermediate node, which may eventually lead to overload of the intermediate node.
According to another acknowledgement method, often referred to as an “end to end” method, primary data packets are not acknowledged on a stage by stage basis; acks are only sent from the destination of a primary data packet to its source. In end to end methods, acks are typically passed from L2 to L3 for processing; from the perspective of L2, the end to end acks are themselves data packets which are either passed to L3 for processing, if at the destination node of the ack, or sent to another node if not. Acks sent according to an end to end method will hereinafter be referred to as “L3 acks”. FIG. 2a shows an example arrangement. A primary data packet is sent from a source node to an intermediate node at step S400. The intermediate node analyses the primary data packet and ascertains that it is not the destination of the primary data packet; it therefore does not send an ack to the source node. At step S402, the primary data packet is sent from the intermediate node to the destination node, which analyses the primary data packet and ascertains that it is the destination of the primary data packet. It therefore sends an ack to the source node; this involves the ack being sent from the destination node to the intermediate node at step S404 and from the intermediate node to the source node at step S406.
In end to end methods, any primary data that is lost or corrupted during transmission must be retransmitted from the source, as is now described with reference to FIG. 2b. At step S410, a primary data packet is sent from the source node to the intermediate node. At step S412, the primary data packet is sent from the intermediate node, but does not arrive at the destination node. The source node monitors for an ack for the primary data packet it has sent for a predetermined time T1, before resending the primary data packet at step S414. The primary data packet arrives at the intermediate node, from which it is resent at step S416. This time, the primary data packet is received successfully at the destination node. In response to this, the destination node sends an ack at step 418, which arrives at the intermediate node and is sent to the source node at step S420.
End to end methods suffer from inefficiency because, particularly where a primary data packet is lost or corrupted near to its destination, the primary data packet has to be resent over stages of its transmission route over which it has already been successfully transmitted. In the example described with reference to FIG. 2b, the same primary data packet is sent twice between the source node and the intermediate node, at step S410 and step S414. Further, the primary data packet is also retransmitted when an L3 ack is lost or corrupted during transmission, leading to even greater inefficiency, because the primary data packet then has to be retransmitted over the whole connection, and the corresponding L3 ack retransmitted over part of the connection. End to end methods also suffer from long propagation times between sending the primary data packet and receiving the corresponding ack, which can lead to difficulties, particularly where the primary data packet is being sent in a sequence of packets, because several further packets may have been sent before the source node reacts to a primary data packet not being correctly received, leading to problems with correct sequencing of the data. This is particularly problematic in systems having a high error rate, such as radio transmission.
Some arrangements use both a point to point method and an end to end method independently in the same system. Referring to FIG. 3, in these arrangements a primary data packet is sent from the source node to the intermediate node at step S500. The intermediate node sends an L2 ack to the source node at step S502 and at step S504, the primary data packet is sent from the intermediate node to the destination node. In response to receiving the primary data packet, the destination node sends an L2 ack to the intermediate node at step S506. It also sends an L3 ack at step S508, which is received by the intermediate node.
In this arrangement, the L3 acks are themselves acknowledged at L2; this is because, as mentioned above, from the perspective of L2, an L3 ack is a primary data packet that is sent on and/or processed and acknowledged; failing to acknowledge the L3 acks would therefore lead to the problems of long propagation times and so on described above in relation to end to end methods. Acknowledgements of L3 acks will be referred to hereinafter as L3 ack confirmations; however, in substance L3 ack confirmations may be considered to be L2 acks.
In some cases, the L2 ack and L3 ack corresponding to a given primary data packet may be sent as part of the same data packet. However, conventional L2 acks and L3 acks function independently of one another and are considered herein as separate notifications, irrespective of whether they are carried in the same data packet.
Returning to FIG. 3, at step S510, the intermediate node sends an L3 ack confirmation to the destination node. The intermediate node then sends the L3 ack to the source node at step S512, which in turn sends an L3 ack confirm to the intermediate node at step S514.
Systems using both an end to end acknowledgement method and a point to point acknowledgement method have the disadvantage that a large amount of transmission time is taken up by the transmission of acks, which reduces the transmission time that can be used for transmitting other forms of data, leading to reduced efficiency.
It is an object of the present invention to mitigate at least some of the problems of the prior art.